package net.jqsoft.mvc.controller;

import com.alibaba.fastjson.JSON;

import net.jqsoft.common.domain.JsonResult;

/**
 * 
 * 基础的Controller提供部分通用方法
 * 
 * 
 * 
 * 
 * @author wangjie
 *
 */
public abstract class BaseController {
	
	protected static final String RESPOND_CODE = "code";// layui需要的编码
	protected static final int RESPOND_SUCCEED = 0;// 操作成功
	protected static final int RESPOND_FAILURE = 1;// 操作失败
	protected static final String PARAM_CURRENT_PAGE = "page";// 分页参数名称-当前页
	protected static final String PARAM_PAGE_LIMIT = "limit";// 分页参数名称-每页条数
	protected static final String MSG_INSERT_SUCCEED = "新增成功";
	protected static final String MSG_UPDATE_SUCCEED = "修改成功";
	protected static final String MSG_DELETE_SUCCEED = "删除成功";
	
	/**
	 * 
	 * 操作成功响应
	 * 
	 * 
	 * @return JsonResult 操作结果
	 */
	protected JsonResult renderSucceed() {
		return JsonResult.ok().add(RESPOND_CODE, RESPOND_SUCCEED);
	}

	/**
	 * 
	 * 操作成功响应
	 * 
	 * @param msg 响应消息
	 * @return JsonResult 操作结果
	 */
	protected JsonResult renderSucceed(String msg) {
		return JsonResult.ok().add(RESPOND_CODE, RESPOND_SUCCEED).message(msg);
	}
	
	/**
	 * 
	 * 操作失败响应
	 * 
	 * @return JsonResult 操作结果
	 */
	protected JsonResult renderFail() {
		return JsonResult.fail().add(RESPOND_CODE, RESPOND_FAILURE);
	}

	/**
	 * 
	 * 操作失败响应
	 * 
	 * @param msg 响应消息
	 * @return JsonResult 操作结果
	 */
	protected JsonResult renderFail(String msg) {
		return JsonResult.fail().add(RESPOND_CODE, RESPOND_FAILURE).message(msg);
	}
	
	/**
	 * 
	 * 校验响应
	 * 
	 * @param msg 响应消息
	 * @return JsonResult 操作结果
	 */
	protected JsonResult renderVerify(boolean result) {
		return JsonResult.ok().add("result", result);
	}
	
	/**
	 * 
	 * 对象转JSON字符串
	 * 
	 * @param object 对象
	 * @return String JSON串
	 */
	protected String toJson(Object object) {
		return JSON.toJSONString(object);
	}
}